//   复制这个路径  /NG3Resource/js/JncjCommon.js
//李庆广于2021.1.14开始
function allReadyEdit() {

    //****************1 全局性设置****************/
    //1.1设定精准布局参数
    NG.setFieldsHeight(24);  //精准布局设置控件高度
    // NG.setFieldsHeight(80,'csgd');  //精准布局设置控件高度
    NG.setGridTop(230, 'p_form0000000872_d');  //设置单据体距头部距离
    NG.setGridTop(480, 'p_form0000000872_d1');  //设置单据体距头部距离

    //1.2获取元素
    var bill_no = curForm.getItem('bill_no');    //单据编号
    var title = curForm.getItem('title');    //标题
    var bill_dt = curForm.getItem('bill_dt');    //日期
    var remarks = curForm.getItem('remarks');    //备注
    var ocode = curForm.getItem('ocode');    //组织
    var ytlb = curForm.getItem('ytlb');    //用途类别
    var jdck = curForm.getItem('jdck');    //基地仓库
    var ny = curForm.getItem('ny');    //年月
    var year = curForm.getItem('year');    //年份
    var month = curForm.getItem('month');    //月份
    var empid3 = curForm.getItem('empid3');    //经办人
    var gdzcje = curForm.getItem('gdzcje');    //固定资产折旧金额
    var dzyhpje = curForm.getItem('dzyhpje');    //低值易耗品金额
    var hcje = curForm.getItem('hcje');    //耗材金额
    var zzclje = curForm.getItem('zzclje');    //周转材料摊销金额
    var jehj = curForm.getItem('jehj');    //金额合计
    var cycleid = curForm.getItem('cycleid0');    //工作周期  临时添加，将来要替换掉。
    var no_hz_sl = curForm.getItem('no_hz_sl');    //未核准单据数量

    var dgrid = Ext.getCmp('p_form0000000872_dgrid');  // 等效于 NG._getGrid('p_form0000000872_d1')
    var dgrid1 = Ext.getCmp('p_form0000000872_d1grid');  // 等效于 NG._getGrid('p_form0000000872_d1')

    var dstore = dgrid.getStore();  //获取数据对象并赋值
    var dstore1 = dgrid1.getStore();


    //1.3设置只读属性
    bill_dt.userSetReadOnly(false);   //系统默认为只读，设为可修改

    //1.4 添加及禁用按钮，并将【计算折旧】按钮置为不可用。
    curToolbar.insert(3, { itemId: "mycheck", text: "单据检查", width: this.itemWidth, iconCls: "iconfont iconscheck" });   //指定位置插入按钮
    curToolbar.insert(4, { itemId: "mycal", text: '计算折旧', width: this.itemWidth, iconCls: 'iconfont iconEccloan' });

    curToolbar.get('mycal').disable();  //置为不可用。
    curToolbar.get('addrow').disable();  //增行置为不可用。
    curToolbar.get('deleterow').disable();  //删行置为不可用。


    //****************2 单据编辑页面处理***********************/
    curForm.on('dataready', function () {  //加载完成后

        //2.0先建立起标题的监听事件
        // [单据头.标题] = [单据头.组织名称]+ [单据头.年份]+'年'+ [单据头.月份]+'月'+ [单据头.用途类别名称]+'折旧及摊销'
        NG.bindMasterExp('title', "{ocode}+{year}+'年'+{month}+'月'+{ytlb}+'折旧及摊销'");  // 先加载监听事件

        //-----------2.1新增单据初始化----------------------
        if (otype == 'add') {
            //日期赋值
            var dt = bill_dt.getValue()
            year.setValue(dt.getFullYear());   //[单据头.年份] =select nian from tjzqx  where cno=  [单据头.工作周期]
            month.setValue(dt.getMonth() + 1);   //[单据头.月份] =select yue from tjzqx  where cno=  [单据头.工作周期]
            ny.setValue(NG.dateFormat(dt, 'YYYYmm'))//[单据头.年月] =select ny from tjzqx  where cno=  [单据头.工作周期]

            //将表单锁定
            execServer('hr02_get_hrid_and_otherinf_by_fg3userid', { 'phid': $appinfo.userID }, function (res) {
                empid3.setValue(res.data[0].hrid);  //经办人  [单据头.锁定人] =select ccode from hr_epm_main  where cno= [单据头.录入人]
                BatchBindCombox([empid3]);//代码转名称
            });

            //为工作周期赋值，将来bug修复后删掉
            var tjzqphid = NG.execServer('tjzq01_get_tjzqPhid_by_ny', { 'ny': NG.dateFormat(dt, 'YYYYmm') }, 'phid');
            //cycleid.setValue(tjzqphid);
            cycleid.setValue(tjzqphid);  //


            // [单据头.用途类别] =select top 1 ytlb   from fzyp_opteror where opteror = [单据头.录入人] and ocode = [单据头.组织] order by case when ytlb='10000' then '10007' else ytlb end
            var ytlb_v = NG.execServer('fzyp01_get_ytlb_by_userID_and_ocode', { 'userID': $appinfo.userID, 'ocode': ocode.getValue() }, 'ytlb');
            ytlb.setValue(ytlb_v);
            BatchBindCombox([cycleid, ytlb]);
            // getCk_by_pc_and_ytlb()   //更新仓库，因为无法触发，故直接执行一次。用   ytlb.fireEvent('helpselected')可以实现。
            check_no_hz(); //[单据头.本组织是否有未核准单据] =select COUNT(1) from p_form0000000872_m where ocode= [单据头.组织] and ytlb = [单据头.用途类别] and isnull(ischeck  & '0')='0'

        }
        //-----------2.2新增或编辑单据----------------------
        if (otype == 'add' || otype == 'edit') {

            //[单据头.基地仓库] =select top 1 bill_no  from p_form0000000839_m where ocode= [单据头.组织] and ytlb =  [单据头.用途类别]
            //[单据头.用途类别名称] =select description from res_type where id= [单据头.用途类别]

            ytlb.on('helpselected', function () {
                if (ytlb.getValue() && ocode.getValue) {
                    getCk_by_pc_and_ytlb()
                }
            });
            ytlb.fireEvent('helpselected');  //执行一次模拟选择


            //单击【单据检查】按钮
            curToolbar.items.get('mycheck').on('click', function () {  //单击“检查核准‘按钮”

                dgrid1.getStore().clearData();   //清除数据
                dgrid1.getView().refresh();  //刷新
                no_hz_sl.setValue(null); //清除未核准相关单据数量

                if (!jdck.getValue()) {
                    NG.alert('基地仓库不能为空！');
                    return false;
                }

                if (!ny.getValue()) {
                    NG.alert('年月不能为空！');
                    return false;
                } else if (!ocode.getValue()) {
                    NG.alert('组织不能为空！');
                    return false;
                } else if (!ytlb.getValue()) {
                    NG.alert('请先选择用途类别！');
                    ytlb.focus();  //获取焦点
                    return false;
                } else {
                    NG.setSumToMaster('no_hz_sl', 'sl', 'p_form0000000872_d1');//建立监听，赋值给表头
                    var ny_v = ny.getValue()
                    var ocode_v = ocode.getValue()
                    var ytlb_v = ytlb.getValue()

                    NG.addDetailBySql('获取关联未核准单据列表', { 'ny': ny.getValue(), 'ocode': ocode.getValue(), 'ytlb': ytlb.getValue() }, true, 'p_form0000000872_d1');
                }

                if (no_hz_sl.getValue()) {
                    NG.alert('有未核准的关联单据，请先按照提示信息列表逐一处理后再行计提折旧！');
                    curToolbar.get('mycal').disable();
                } else {
                    curToolbar.get('mycal').enable();  //让计算折旧按钮可用状态
                    var arr = {  //定义一个数组，拟插入到表单体中。
                        'gnd': '未检索到未核准单据',
                        'sl': 0.0,
                        'torf': '1'
                    }
                    var dstore = dgrid1.store
                    dstore.insert(dstore.getCount(), arr);               //插入一行信息
                    //dgrid1.getView().refresh();  //刷新一下，不加也可以。

                }
            })

            //单击【计提折旧】按钮
            curToolbar.items.get('mycal').on('click', function () {  //单击“计提折旧‘按钮”
                dgrid.getStore().clearData();   //清除数据
                dgrid.getView().refresh();  //刷新

                if (no_hz_sl.getValue()) {//冗余判断
                    NG.alert('仍有未核准的相关单据，必须先核准！');
                    return false;
                } else {
                    var loadMarsk = new Ext.LoadMask(document.body, { msg: '固定资产折旧计提中，请稍后...', removeMask: false,store });
                    loadMarsk.show();
                    NG.addDetailBySql('固定资产折旧', { 'ckm_phid': jdck.getValue(), 'ny': ny.getValue() }, true, 'p_form0000000872_d');
                    loadMarsk.hide();

                }

            })

        }

    })


    //9.1根据组织及用途类别更新仓库
    function getCk_by_pc_and_ytlb() {
        jdck.clearValue();
        if (NG.validateEmpty(['ocode', 'ytlb'])) {  //均为非空
            NG.execServer('fzyp02_get_jdckID_by_ocode_and_ytlb', { 'ocode': ocode.getValue(), 'ytlb': ytlb.getValue() });
            if (res.data.length == 0) {
                NG.alert("该项目尚未建立仓库，请先完成仓库创建！");

            } else if (res.data.length > 1) {
                NG.alert("该项目建了多个仓库，先删掉一个！");

            } else {
                var ckphid = res.data[0].phid  //获取仓库phid
                jdck.setValue(ckphid); //更新仓库
                BatchBindCombox([jdck]);//代码转名称

            }
        }
    }


    //9.3检查未核准的单据
    function check_no_hz() {

        if (ocode.getValue() && ytlb.getValue()) {
            var no_hz_sl = NG.callServer('本组织未核准的同类用途折旧表', { 'ocode': ocode.getValue(), 'ytlb': ytlb.getValue(), 'phid': busid || 0 }, 'no_hz_sl'); //phid若尚未生成，则传0
            if (no_hz_sl > 0) {
                NG.alert('有未核准的折旧表，请先核准或删除');
                window.close();  //关闭本窗体
            }

        }

    }

}





// function beforeVerifyEdit() {
//     NG.alert('马上要核准');
//     return true;
// }

// function beforeUnVerifyEdit() {
//     NG.alert('本单据一经核准，不得取消！');
//     return false;
// };

// function beforeUnVerifyList() {
//     NG.alert('本单据一经核准，不得取消！');
//     return false;
// };


